package com.cencat.merchant.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 商家视图对象
 * @author cencat
 * @since 2024-01-01
 */
@Data
@Schema(description = "商家视图对象")
public class MerchantVO {

    @Schema(description = "商家ID", example = "1")
    private Long id;

    @Schema(description = "商家名称", example = "张三的小店")
    private String merchantName;

    @Schema(description = "商家编码", example = "M202401001")
    private String merchantCode;

    @Schema(description = "联系人姓名", example = "张三")
    private String contactName;

    @Schema(description = "联系电话", example = "13800138000")
    private String contactPhone;

    @Schema(description = "联系邮箱", example = "zhangsan@example.com")
    private String contactEmail;

    @Schema(description = "商家地址", example = "北京市朝阳区xxx街道xxx号")
    private String address;

    @Schema(description = "商家描述", example = "专业提供优质商品和服务")
    private String description;

    @Schema(description = "营业执照号", example = "91110000000000000X")
    private String businessLicense;

    @Schema(description = "法人代表", example = "张三")
    private String legalRepresentative;

    @Schema(description = "注册资本", example = "100000.00")
    private BigDecimal registeredCapital;

    @Schema(description = "经营范围", example = "零售、批发")
    private String businessScope;

    @Schema(description = "商家网站", example = "https://www.example.com")
    private String website;

    @Schema(description = "商家Logo URL", example = "https://www.example.com/logo.png")
    private String logoUrl;

    @Schema(description = "商家状态", example = "1")
    private Integer status;

    @Schema(description = "商家状态名称", example = "正常")
    private String statusName;

    @Schema(description = "商家等级", example = "1")
    private Integer level;

    @Schema(description = "商家等级名称", example = "青铜")
    private String levelName;

    @Schema(description = "审核状态", example = "1")
    private Integer auditStatus;

    @Schema(description = "审核状态名称", example = "已审核")
    private String auditStatusName;

    @Schema(description = "审核意见", example = "审核通过")
    private String auditRemark;

    @Schema(description = "审核时间", example = "2024-01-01T10:00:00")
    private LocalDateTime auditTime;

    @Schema(description = "审核人ID", example = "1")
    private Long auditUserId;

    @Schema(description = "审核人姓名", example = "管理员")
    private String auditUserName;

    @Schema(description = "是否启用", example = "true")
    private Boolean enabled;

    @Schema(description = "备注", example = "重要客户")
    private String remark;

    @Schema(description = "创建时间", example = "2024-01-01T10:00:00")
    private LocalDateTime createTime;

    @Schema(description = "更新时间", example = "2024-01-01T10:00:00")
    private LocalDateTime updateTime;

    @Schema(description = "创建人ID", example = "1")
    private Long createUserId;

    @Schema(description = "创建人姓名", example = "管理员")
    private String createUserName;

    @Schema(description = "更新人ID", example = "1")
    private Long updateUserId;

    @Schema(description = "更新人姓名", example = "管理员")
    private String updateUserName;
}